package com.lyuewei.ringtone.data; // 替换为你的数据类包名

import androidx.annotation.NonNull;
import androidx.room.RoomDatabase;
import androidx.sqlite.db.SupportSQLiteDatabase;

import com.elvishew.xlog.XLog;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class AppDatabaseCallback extends RoomDatabase.Callback {

    // 使用一个 ExecutorService 在后台线程执行数据库操作
    private final ExecutorService databaseWriteExecutor =
            Executors.newSingleThreadExecutor();

    @Override
    public void onCreate(@NonNull SupportSQLiteDatabase db) {
        super.onCreate(db);

        XLog.d("AppDatabase created. Inserting default global setting.");

        // 在后台线程执行插入操作
        databaseWriteExecutor.execute(() -> {
            // 在这里执行插入操作，注意这里我们不能直接使用 DAO，
            // 需要使用 SupportSQLiteDatabase 执行 SQL 语句
            // 或者，如果你能获取到 AppDatabase 实例，可以获取 DAO
            // 但在 onCreate 中直接获取 AppDatabase 实例可能有点绕，
            // 直接执行 SQL 通常更简单
            try {
                // 使用 SQL 语句插入数据
                // INSERT OR IGNORE: 如果 id=1 的记录已存在，则忽略插入
                db.execSQL("INSERT OR IGNORE INTO ringer_settings (id, phone, name, volume, interval, times, enabled,startHour,startMinute,endHour,endMinute) " +
                        "VALUES (1, '', '全局', 50, 0, 0, 0,0,0,23,59)");
                XLog.d("Default global setting inserted.");
            } catch (Exception e) {
                XLog.e("Error inserting default global setting.",e);
            }
        });
    }

    @Override
    public void onOpen(@NonNull SupportSQLiteDatabase db) {
        super.onOpen(db);
        XLog.d("AppDatabase opened.");
        // 数据库打开时执行的操作（如果需要）
    }
}